// 判断是否为MP4文件
export function isMp4File(url: string): boolean {
  if (!url) return false;
  const lowerCaseUrl = url.toLowerCase();
  return lowerCaseUrl.endsWith(".mp4") || lowerCaseUrl.endsWith("mp4?");
}

// 过滤掉 noteCover 不是 mp4 的数组项
export function filterMp4Items<T extends { noteCover?: string }>(items: T[]): T[] {
  return items.filter((item) => {
    return item.noteCover && isMp4File(item.noteCover);
  });
}

// 过滤掉 noteCover 是 mp4 的数组项（只保留非MP4项）
export function filterNonMp4Items<T extends { noteCover?: string }>(items: T[]): T[] {
  return items.filter((item) => {
    return !item.noteCover || !isMp4File(item.noteCover);
  });
}

// 获取所有 MP4 项
export function getMp4Items<T extends { noteCover?: string }>(items: T[]): T[] {
  return filterMp4Items(items);
}

// 获取所有非 MP4 项
export function getNonMp4Items<T extends { noteCover?: string }>(items: T[]): T[] {
  return filterNonMp4Items(items);
}

// 根据自定义条件过滤
export function filterByCustomField<T extends { [key: string]: any }>(
  items: T[],
  fieldName: string,
  filterFn: (value: any) => boolean
): T[] {
  return items.filter((item) => {
    return item[fieldName] && filterFn(item[fieldName]);
  });
}

// 测试函数
export function testMp4Filter(data: any[]) {
  console.log("原始数据数量:", data.length);
  console.log("MP4 项数量:", getMp4Items(data).length);
  console.log("非 MP4 项数量:", getNonMp4Items(data).length);
  console.log("MP4 项:", getMp4Items(data));
  console.log("非 MP4 项:", getNonMp4Items(data));
}
